<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        //作业一
        // (function (b) {
        //     console.log(b); //1
        //     var b = c = 2;
        //     console.log(b); //2
        // })(1)

        //作业二
        // (function (b) {
        //     console.log(b);  //function b(){console.log(b)}
        //     var b = c = 2;
        //     console.log(b); //2
        //     function b() { }
        //     console.log(b); //2
        // })(1)

        //作业三
        // (function () {
        //     var a = b = 3;
        // })();

        // console.log((typeof a !== 'undefined')); //flast
        // console.log((typeof b !== 'undefined')); //ture

        //作业四
        // (function (x) {
        //     return (function (y) {
        //         console.log(x);
        //     })(2)
        // })(1); //1

        //作业五
        // var myObject = {
        //     foo: "bar",
        //     func: function () {
        //         var self = this;
        //         console.log(this.foo); //"bar"
        //         console.log(self.foo); //"bar"
        //         (function () {
        //             console.log(this.foo); //undefined
        //             console.log(self.foo); //bar
        //         }());
        //     }
        // };
        // myObject.func();

        //作业六
        //写一个下面两种方式都能调用的函数
        //console.log(sum(2, 3)); // Outputs 5
        //1. function sum(one,two){
        //     this.num = one + two;
        //     return num;
        // }
        // console.log(sum(2,3));
        // function fun (sum) {
        //     this.sum = sum;
        //     function fun1 (sum1){
        //         this.sum1 = sum + sum1;
        //         console.log(this.sum1);
        //     }
        //     return fun1;
        // }
        // fun(2)(3)


        //作业七完成下面函数
        //function repeat(func, times, wait) {
        //}
        // 1.这个函数能返回一个新函数，比如这样用
        // var repeatedFun = repeat(alert, 10, 5000)
        // 2.调用这个 repeatedFun ("hellworld") 会alert十次 helloworld, 每次间隔5秒
        function repeat(func, times, wait) {
            
            for (var i = 0; i < times; i++) {
                setTimeout(function () {
                        alert("hellworld")
                    

                }, wait)
            }
        };
        var repeatedFun = repeat(alert, 10, 5000);
        console.log(repeatedFun);
        
        repeatedFun ("hellworld")
        // this.func = function func() {

        // }
      

    </script>
</body>

</html>